package top.continew.admin.generator.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.continew.admin.generator.model.entity.TaskAssignmentDO;
import top.continew.admin.system.model.resp.TaskAssignmentHandlerResp;

import java.util.List;

/**
 * 任务分配业务接口
 *
 * @author jiangjun
 * @since 2025/01/20 10:00
 */
public interface TaskAssignmentService extends IService<TaskAssignmentDO> {
    
    /**
     * 为任务创建分配记录
     *
     * @param taskId 任务ID
     * @param provinceName 省区名称
     */
    void createAssignments(Long taskId, String provinceName);

    /**
     * 查询任务负责人信息
     * @param list 任务id集合
     * @return
     */
    List<TaskAssignmentHandlerResp> selectHandlers(List<Long> list);

    /**
     * 为任务创建分配记录（包含批次ID）
     *
     * @param taskId 任务ID
     * @param provinceName 省区名称
     * @param batchId 批次ID
     */
    void createAssignments(Long taskId, String provinceName, String batchId);

    /**
     * 创建任务分配列表（不保存）
     *
     * @param taskId 任务ID
     * @param provinceName 省区名称
     * @param batchId 批次ID
     * @return 分配列表
     */
    List<TaskAssignmentDO> createAssignmentList(Long taskId, String provinceName, String batchId);

    /**
     * 批量保存任务分配
     *
     * @param assignments 分配列表
     */
    void batchSaveAssignments(List<TaskAssignmentDO> assignments);

    boolean cleanProvinceHandlersCache();
}